package com.hydl.power.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MaxDataExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MaxDataExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andAreaNameIsNull() {
            addCriterion("area_name is null");
            return (Criteria) this;
        }

        public Criteria andAreaNameIsNotNull() {
            addCriterion("area_name is not null");
            return (Criteria) this;
        }

        public Criteria andAreaNameEqualTo(String value) {
            addCriterion("area_name =", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameNotEqualTo(String value) {
            addCriterion("area_name <>", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameGreaterThan(String value) {
            addCriterion("area_name >", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameGreaterThanOrEqualTo(String value) {
            addCriterion("area_name >=", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameLessThan(String value) {
            addCriterion("area_name <", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameLessThanOrEqualTo(String value) {
            addCriterion("area_name <=", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameLike(String value) {
            addCriterion("area_name like", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameNotLike(String value) {
            addCriterion("area_name not like", value, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameIn(List<String> values) {
            addCriterion("area_name in", values, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameNotIn(List<String> values) {
            addCriterion("area_name not in", values, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameBetween(String value1, String value2) {
            addCriterion("area_name between", value1, value2, "areaName");
            return (Criteria) this;
        }

        public Criteria andAreaNameNotBetween(String value1, String value2) {
            addCriterion("area_name not between", value1, value2, "areaName");
            return (Criteria) this;
        }

        public Criteria andProjectNameIsNull() {
            addCriterion("project_name is null");
            return (Criteria) this;
        }

        public Criteria andProjectNameIsNotNull() {
            addCriterion("project_name is not null");
            return (Criteria) this;
        }

        public Criteria andProjectNameEqualTo(String value) {
            addCriterion("project_name =", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameNotEqualTo(String value) {
            addCriterion("project_name <>", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameGreaterThan(String value) {
            addCriterion("project_name >", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameGreaterThanOrEqualTo(String value) {
            addCriterion("project_name >=", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameLessThan(String value) {
            addCriterion("project_name <", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameLessThanOrEqualTo(String value) {
            addCriterion("project_name <=", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameLike(String value) {
            addCriterion("project_name like", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameNotLike(String value) {
            addCriterion("project_name not like", value, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameIn(List<String> values) {
            addCriterion("project_name in", values, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameNotIn(List<String> values) {
            addCriterion("project_name not in", values, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameBetween(String value1, String value2) {
            addCriterion("project_name between", value1, value2, "projectName");
            return (Criteria) this;
        }

        public Criteria andProjectNameNotBetween(String value1, String value2) {
            addCriterion("project_name not between", value1, value2, "projectName");
            return (Criteria) this;
        }

        public Criteria andPowerRoomIsNull() {
            addCriterion("power_room is null");
            return (Criteria) this;
        }

        public Criteria andPowerRoomIsNotNull() {
            addCriterion("power_room is not null");
            return (Criteria) this;
        }

        public Criteria andPowerRoomEqualTo(String value) {
            addCriterion("power_room =", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomNotEqualTo(String value) {
            addCriterion("power_room <>", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomGreaterThan(String value) {
            addCriterion("power_room >", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomGreaterThanOrEqualTo(String value) {
            addCriterion("power_room >=", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomLessThan(String value) {
            addCriterion("power_room <", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomLessThanOrEqualTo(String value) {
            addCriterion("power_room <=", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomLike(String value) {
            addCriterion("power_room like", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomNotLike(String value) {
            addCriterion("power_room not like", value, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomIn(List<String> values) {
            addCriterion("power_room in", values, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomNotIn(List<String> values) {
            addCriterion("power_room not in", values, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomBetween(String value1, String value2) {
            addCriterion("power_room between", value1, value2, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andPowerRoomNotBetween(String value1, String value2) {
            addCriterion("power_room not between", value1, value2, "powerRoom");
            return (Criteria) this;
        }

        public Criteria andFuntypeIsNull() {
            addCriterion("funType is null");
            return (Criteria) this;
        }

        public Criteria andFuntypeIsNotNull() {
            addCriterion("funType is not null");
            return (Criteria) this;
        }

        public Criteria andFuntypeEqualTo(String value) {
            addCriterion("funType =", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeNotEqualTo(String value) {
            addCriterion("funType <>", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeGreaterThan(String value) {
            addCriterion("funType >", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeGreaterThanOrEqualTo(String value) {
            addCriterion("funType >=", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeLessThan(String value) {
            addCriterion("funType <", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeLessThanOrEqualTo(String value) {
            addCriterion("funType <=", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeLike(String value) {
            addCriterion("funType like", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeNotLike(String value) {
            addCriterion("funType not like", value, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeIn(List<String> values) {
            addCriterion("funType in", values, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeNotIn(List<String> values) {
            addCriterion("funType not in", values, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeBetween(String value1, String value2) {
            addCriterion("funType between", value1, value2, "funtype");
            return (Criteria) this;
        }

        public Criteria andFuntypeNotBetween(String value1, String value2) {
            addCriterion("funType not between", value1, value2, "funtype");
            return (Criteria) this;
        }

        public Criteria andDatatypeIsNull() {
            addCriterion("dataType is null");
            return (Criteria) this;
        }

        public Criteria andDatatypeIsNotNull() {
            addCriterion("dataType is not null");
            return (Criteria) this;
        }

        public Criteria andDatatypeEqualTo(String value) {
            addCriterion("dataType =", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotEqualTo(String value) {
            addCriterion("dataType <>", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeGreaterThan(String value) {
            addCriterion("dataType >", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeGreaterThanOrEqualTo(String value) {
            addCriterion("dataType >=", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeLessThan(String value) {
            addCriterion("dataType <", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeLessThanOrEqualTo(String value) {
            addCriterion("dataType <=", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeLike(String value) {
            addCriterion("dataType like", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotLike(String value) {
            addCriterion("dataType not like", value, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeIn(List<String> values) {
            addCriterion("dataType in", values, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotIn(List<String> values) {
            addCriterion("dataType not in", values, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeBetween(String value1, String value2) {
            addCriterion("dataType between", value1, value2, "datatype");
            return (Criteria) this;
        }

        public Criteria andDatatypeNotBetween(String value1, String value2) {
            addCriterion("dataType not between", value1, value2, "datatype");
            return (Criteria) this;
        }

        public Criteria andModuleIdIsNull() {
            addCriterion("module_id is null");
            return (Criteria) this;
        }

        public Criteria andModuleIdIsNotNull() {
            addCriterion("module_id is not null");
            return (Criteria) this;
        }

        public Criteria andModuleIdEqualTo(Integer value) {
            addCriterion("module_id =", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotEqualTo(Integer value) {
            addCriterion("module_id <>", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdGreaterThan(Integer value) {
            addCriterion("module_id >", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("module_id >=", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdLessThan(Integer value) {
            addCriterion("module_id <", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdLessThanOrEqualTo(Integer value) {
            addCriterion("module_id <=", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdIn(List<Integer> values) {
            addCriterion("module_id in", values, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotIn(List<Integer> values) {
            addCriterion("module_id not in", values, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdBetween(Integer value1, Integer value2) {
            addCriterion("module_id between", value1, value2, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotBetween(Integer value1, Integer value2) {
            addCriterion("module_id not between", value1, value2, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleNameIsNull() {
            addCriterion("module_name is null");
            return (Criteria) this;
        }

        public Criteria andModuleNameIsNotNull() {
            addCriterion("module_name is not null");
            return (Criteria) this;
        }

        public Criteria andModuleNameEqualTo(String value) {
            addCriterion("module_name =", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotEqualTo(String value) {
            addCriterion("module_name <>", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameGreaterThan(String value) {
            addCriterion("module_name >", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameGreaterThanOrEqualTo(String value) {
            addCriterion("module_name >=", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLessThan(String value) {
            addCriterion("module_name <", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLessThanOrEqualTo(String value) {
            addCriterion("module_name <=", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLike(String value) {
            addCriterion("module_name like", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotLike(String value) {
            addCriterion("module_name not like", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameIn(List<String> values) {
            addCriterion("module_name in", values, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotIn(List<String> values) {
            addCriterion("module_name not in", values, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameBetween(String value1, String value2) {
            addCriterion("module_name between", value1, value2, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotBetween(String value1, String value2) {
            addCriterion("module_name not between", value1, value2, "moduleName");
            return (Criteria) this;
        }

        public Criteria andFuncIdIsNull() {
            addCriterion("func_id is null");
            return (Criteria) this;
        }

        public Criteria andFuncIdIsNotNull() {
            addCriterion("func_id is not null");
            return (Criteria) this;
        }

        public Criteria andFuncIdEqualTo(Integer value) {
            addCriterion("func_id =", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdNotEqualTo(Integer value) {
            addCriterion("func_id <>", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdGreaterThan(Integer value) {
            addCriterion("func_id >", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("func_id >=", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdLessThan(Integer value) {
            addCriterion("func_id <", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdLessThanOrEqualTo(Integer value) {
            addCriterion("func_id <=", value, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdIn(List<Integer> values) {
            addCriterion("func_id in", values, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdNotIn(List<Integer> values) {
            addCriterion("func_id not in", values, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdBetween(Integer value1, Integer value2) {
            addCriterion("func_id between", value1, value2, "funcId");
            return (Criteria) this;
        }

        public Criteria andFuncIdNotBetween(Integer value1, Integer value2) {
            addCriterion("func_id not between", value1, value2, "funcId");
            return (Criteria) this;
        }

        public Criteria andTagTimeIsNull() {
            addCriterion("tag_time is null");
            return (Criteria) this;
        }

        public Criteria andTagTimeIsNotNull() {
            addCriterion("tag_time is not null");
            return (Criteria) this;
        }

        public Criteria andTagTimeEqualTo(Date value) {
            addCriterion("tag_time =", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeNotEqualTo(Date value) {
            addCriterion("tag_time <>", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeGreaterThan(Date value) {
            addCriterion("tag_time >", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("tag_time >=", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeLessThan(Date value) {
            addCriterion("tag_time <", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeLessThanOrEqualTo(Date value) {
            addCriterion("tag_time <=", value, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeIn(List<Date> values) {
            addCriterion("tag_time in", values, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeNotIn(List<Date> values) {
            addCriterion("tag_time not in", values, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeBetween(Date value1, Date value2) {
            addCriterion("tag_time between", value1, value2, "tagTime");
            return (Criteria) this;
        }

        public Criteria andTagTimeNotBetween(Date value1, Date value2) {
            addCriterion("tag_time not between", value1, value2, "tagTime");
            return (Criteria) this;
        }

        public Criteria andFirstValueIsNull() {
            addCriterion("first_value is null");
            return (Criteria) this;
        }

        public Criteria andFirstValueIsNotNull() {
            addCriterion("first_value is not null");
            return (Criteria) this;
        }

        public Criteria andFirstValueEqualTo(Integer value) {
            addCriterion("first_value =", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueNotEqualTo(Integer value) {
            addCriterion("first_value <>", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueGreaterThan(Integer value) {
            addCriterion("first_value >", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueGreaterThanOrEqualTo(Integer value) {
            addCriterion("first_value >=", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueLessThan(Integer value) {
            addCriterion("first_value <", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueLessThanOrEqualTo(Integer value) {
            addCriterion("first_value <=", value, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueIn(List<Integer> values) {
            addCriterion("first_value in", values, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueNotIn(List<Integer> values) {
            addCriterion("first_value not in", values, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueBetween(Integer value1, Integer value2) {
            addCriterion("first_value between", value1, value2, "firstValue");
            return (Criteria) this;
        }

        public Criteria andFirstValueNotBetween(Integer value1, Integer value2) {
            addCriterion("first_value not between", value1, value2, "firstValue");
            return (Criteria) this;
        }

        public Criteria andLastValueIsNull() {
            addCriterion("last_value is null");
            return (Criteria) this;
        }

        public Criteria andLastValueIsNotNull() {
            addCriterion("last_value is not null");
            return (Criteria) this;
        }

        public Criteria andLastValueEqualTo(Integer value) {
            addCriterion("last_value =", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueNotEqualTo(Integer value) {
            addCriterion("last_value <>", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueGreaterThan(Integer value) {
            addCriterion("last_value >", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueGreaterThanOrEqualTo(Integer value) {
            addCriterion("last_value >=", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueLessThan(Integer value) {
            addCriterion("last_value <", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueLessThanOrEqualTo(Integer value) {
            addCriterion("last_value <=", value, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueIn(List<Integer> values) {
            addCriterion("last_value in", values, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueNotIn(List<Integer> values) {
            addCriterion("last_value not in", values, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueBetween(Integer value1, Integer value2) {
            addCriterion("last_value between", value1, value2, "lastValue");
            return (Criteria) this;
        }

        public Criteria andLastValueNotBetween(Integer value1, Integer value2) {
            addCriterion("last_value not between", value1, value2, "lastValue");
            return (Criteria) this;
        }

        public Criteria andMinValueIsNull() {
            addCriterion("min_value is null");
            return (Criteria) this;
        }

        public Criteria andMinValueIsNotNull() {
            addCriterion("min_value is not null");
            return (Criteria) this;
        }

        public Criteria andMinValueEqualTo(Integer value) {
            addCriterion("min_value =", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueNotEqualTo(Integer value) {
            addCriterion("min_value <>", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueGreaterThan(Integer value) {
            addCriterion("min_value >", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueGreaterThanOrEqualTo(Integer value) {
            addCriterion("min_value >=", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueLessThan(Integer value) {
            addCriterion("min_value <", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueLessThanOrEqualTo(Integer value) {
            addCriterion("min_value <=", value, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueIn(List<Integer> values) {
            addCriterion("min_value in", values, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueNotIn(List<Integer> values) {
            addCriterion("min_value not in", values, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueBetween(Integer value1, Integer value2) {
            addCriterion("min_value between", value1, value2, "minValue");
            return (Criteria) this;
        }

        public Criteria andMinValueNotBetween(Integer value1, Integer value2) {
            addCriterion("min_value not between", value1, value2, "minValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueIsNull() {
            addCriterion("max_value is null");
            return (Criteria) this;
        }

        public Criteria andMaxValueIsNotNull() {
            addCriterion("max_value is not null");
            return (Criteria) this;
        }

        public Criteria andMaxValueEqualTo(Integer value) {
            addCriterion("max_value =", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueNotEqualTo(Integer value) {
            addCriterion("max_value <>", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueGreaterThan(Integer value) {
            addCriterion("max_value >", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueGreaterThanOrEqualTo(Integer value) {
            addCriterion("max_value >=", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueLessThan(Integer value) {
            addCriterion("max_value <", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueLessThanOrEqualTo(Integer value) {
            addCriterion("max_value <=", value, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueIn(List<Integer> values) {
            addCriterion("max_value in", values, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueNotIn(List<Integer> values) {
            addCriterion("max_value not in", values, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueBetween(Integer value1, Integer value2) {
            addCriterion("max_value between", value1, value2, "maxValue");
            return (Criteria) this;
        }

        public Criteria andMaxValueNotBetween(Integer value1, Integer value2) {
            addCriterion("max_value not between", value1, value2, "maxValue");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}